freeslot(
	"MT_YELLOW_LUM",
	"MT_HYDROALTAR_CRAWLA_A",
	"MT_HYDROALTAR_CRAWLA_B",
	"MT_HYDROALTAR_CRAWLA_C",
	"MT_HYDROALTAR_CRAWLA_D",
	"MT_HYDROALTAR_CRAWLA_E",
	"MT_HYDROALTAR_CRAWLA_F",
	"MT_HYDROBATTLE_BOSS",
	"MT_HYDROALTAR_CRAWLA_BULLET",
	"MT_HYDROBATTLE_BOSS_BULLET",
	"S_YELLOW_LUM_1",
	"S_YELLOW_LUM_2",
	"S_YELLOW_LUM_3",
	"S_YELLOW_LUM_4",
	"S_YELLOW_LUM_GOT_1",
	"S_YELLOW_LUM_GOT_2",
	"S_YELLOW_LUM_GOT_3",
	"S_YELLOW_LUM_GOT_4",
	"S_YELLOW_LUM_GOT_5",
	"S_YELLOW_LUM_GOT_6",
	"S_YELLOW_LUM_GOT_7",
	"SPR_YLUM",
	"sfx_yellum",
	"sfx_raybng",
	"sfx_raylsr",
	"sfx_rayjng",
	"sfx_raybot",
	"sfx_raybul",
	"sfx_raybum",
	"sfx_raybos",
	"sfx_raybht")

sfxinfo[sfx_yellum] = {
	caption = "Yellow Lum"
}

sfxinfo[sfx_raybng] = {
	caption = "Trampoline"
}

sfxinfo[sfx_rayjng] = {
	caption = "Jingle"
}

sfxinfo[sfx_raylsr] = {
	caption = "Laser"
}

sfxinfo[sfx_raybot] = {
	caption = "Bot Destroyed"
}

sfxinfo[sfx_raybul] = {
	caption = "Bullet"
}

sfxinfo[sfx_raybum] = {
	caption = "Boom"
}

sfxinfo[sfx_raybos] = {
	caption = "Boss Destroyed"
}

sfxinfo[sfx_raybht] = {
	caption = "Boss Hit"
}

states[S_YELLOW_LUM_1] = {
	sprite = SPR_YLUM,
	tics = 2,
	nextstate = S_YELLOW_LUM_2,
	frame = A|TR_TRANS20|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_2] = {
	sprite = SPR_YLUM,
	tics = 1,
	nextstate = S_YELLOW_LUM_3,
	frame = B|TR_TRANS20|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_3] = {
	sprite = SPR_YLUM,
	tics = 2,
	nextstate = S_YELLOW_LUM_4,
	frame = C|TR_TRANS20|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_4] = {
	sprite = SPR_YLUM,
	tics = 1,
	nextstate = S_YELLOW_LUM_1,
	frame = B|TR_TRANS20|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_1] = {
	sprite = SPR_YLUM,
	tics = 3,
	nextstate = S_YELLOW_LUM_GOT_2,
	frame = D|TR_TRANS10|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_2] = {
	sprite = SPR_YLUM,
	tics = 2,
	nextstate = S_YELLOW_LUM_GOT_3,
	frame = E|TR_TRANS20|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_3] = {
	sprite = SPR_YLUM,
	tics = 3,
	nextstate = S_YELLOW_LUM_GOT_4,
	frame = F|TR_TRANS30|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_4] = {
	sprite = SPR_YLUM,
	tics = 2,
	nextstate = S_YELLOW_LUM_GOT_5,
	frame = G|TR_TRANS40|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_5] = {
	sprite = SPR_YLUM,
	tics = 3,
	nextstate = S_YELLOW_LUM_GOT_6,
	frame = H|TR_TRANS50|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_6] = {
	sprite = SPR_YLUM,
	tics = 2,
	nextstate = S_YELLOW_LUM_GOT_7,
	frame = I|TR_TRANS60|FF_FULLBRIGHT
}

states[S_YELLOW_LUM_GOT_7] = {
	sprite = SPR_YLUM,
	tics = 3,
	nextstate = S_NULL,
	frame = J|TR_TRANS60|FF_FULLBRIGHT
}

local function HACrawla(mobj, player, score)
	if  player.player != nil
		player.player.scoreadd = player.player.scoreadd + (score / 50)
		P_AddPlayerScore(player.player, player.player.scoreadd * 50)
	end
	
	mobj.state = mobj.info.deathstate
end

--Crawla scores

addHook("MobjDeath", function(mobj, inflictor, player)
	if not mapheaderinfo[gamemap].hydroaltarlua then return end
	if not (mobj.shbonus == nil)
		HACrawla(mobj, player, mobj.shbonus)
		return true
	end
	return false
end)

addHook("MobjSpawn", function(mobj)
	if not mapheaderinfo[gamemap].hydroaltarlua then return end
	if mobj.type == MT_HYDROALTAR_CRAWLA_A then mobj.shbonus = 100 end
	if mobj.type == MT_HYDROALTAR_CRAWLA_B then mobj.shbonus = 150 end
	if mobj.type == MT_HYDROALTAR_CRAWLA_C then mobj.shbonus = 200 end
	if mobj.type == MT_HYDROALTAR_CRAWLA_D then mobj.shbonus = 300 end
	if mobj.type == MT_HYDROALTAR_CRAWLA_E then mobj.shbonus = 250 end
	if mobj.type == MT_HYDROALTAR_CRAWLA_F then mobj.shbonus = 500 end
	if mobj.type == MT_HYDROBATTLE_BOSS then mobj.shbonus = 10000 end
end)

addHook("ShouldDamage", function(target, inflictor, source, damage, damagetype)
	if not mapheaderinfo[gamemap].hydroaltarlua then return end
	if (target.type == MT_PLAYER) then return end
	if (inflictor.type == MT_HYDROALTAR_CRAWLA_BULLET
	or inflictor.type == MT_HYDROBATTLE_BOSS_BULLET)
	and (target.type == MT_HYDROALTAR_CRAWLA_A
	or target.type == MT_HYDROALTAR_CRAWLA_B
	or target.type == MT_HYDROALTAR_CRAWLA_C
	or target.type == MT_HYDROALTAR_CRAWLA_D
	or target.type == MT_HYDROALTAR_CRAWLA_E
	or target.type == MT_HYDROALTAR_CRAWLA_F
	or target.type == MT_HYDROBATTLE_BOSS)
		return false
	end
end)